package com.lailai.dto;

import jakarta.validation.constraints.*;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Date;

/**
 * 版本文件数据传输对象
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class VersionFileDTO {

    /**
     * 文件ID（可空，新增时不需要）
     */
    private Long id;

    /**
     * 版本ID
     */
    @NotNull(message = "版本ID不能为空")
    private Long versionId;

    /**
     * 文件名
     */
    @NotBlank(message = "文件名不能为空")
    private String fileName;

    /**
     * 文件路径
     */
    @NotBlank(message = "文件路径不能为空")
    private String filePath;

    /**
     * 文件大小（字节）
     */
    @NotNull(message = "文件大小不能为空")
    private Long fileSize;

    /**
     * 文件类型（FULL, PATCH, INCREMENTAL）
     */
    @NotBlank(message = "文件类型不能为空")
    private String fileType;

    /**
     * 平台（WINDOWS, MAC, LINUX 等）
     */
    @NotBlank(message = "平台不能为空")
    private String platform;

    /**
     * 架构（x64, arm64）
     */
    private String architecture;

    /**
     * 创建时间
     */
    private Date createTime;
}
